package mysql;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;

/**
 * 一、使用jdbc 连接 数据库  Mysql
 *  1. maven 仓库下载对应mysql版本的jar包
 *  2.mysql服务器必须启动【WampServer】
 *  3.加载数据库驱动【mysql】
 *  4.获取数据库连接【mysql 用户名:root 密码: 空】
 * 二、链接成功
 *  1.test 库 创建表 person 给3个字段 id、name、address
 *  2.静态sql增加
 */
public class MyaqlJDBC {
    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        //3.加载驱动【注册驱动程序】
        //JDBC  规范标准 要求:连接对应数据库必须先注册'驱动程序'
        //告诉JDBC 现在连接什么种类的数据库
        //Class.forName()通过反射架子啊对应数据库版本驱动类
        Class.forName("com.mysql.jdbc.Driver");
        //获取mysql数据库的链接
        String username="root";
        String password="";
        //url练级而地址:mysql固定结构
        //jdbc:mysql://ip地址:端口号/库名？characterEncoding=UTF-8
        String url="jdbc:mysql://localhost:3308/test?characterEncoding=UTF-8";
        //DriverManager 工具类,功能获取数据库链接:url、用户名、密码
        //getConnection方法，链接不同版本数据库的方法，链接成功，返回Connection
        Connection conn=
        DriverManager.getConnection(url,username,password);
        System.out.println("链接测试是否成功"+conn);

        //5.编写静态添加sql操作【字符串】
        //String sql="insert into person values(3,'吴欣茹','河北唐山')";
        //练习：增加3条数据，删除一条数据，修改一条数据
        //String sql="delete from person where id=2";
        String sql="update person set name='哈喽' where id=1";
        //String sql="select * from person";  --不可以进行查寻操作


        //6.执行静态sql【增加操作】
        // conn.createStatement() 执行数据库中增删改查操作，返回Statement对象
        //Statement 对象执行静态sql
        //6.1具备执行数据库中增删改查操作
        Statement st=conn.createStatement();
        //6.2自行静态sql:增删改操作
        int rows=st.executeUpdate(sql);
        System.out.println("增加"+rows+"记录");
        //7.关闭资源
        st.close(); conn.close();
    }
}

/**
 *    昨天重点
 *    1.JDBC规范  链接各种数据库   Java规范   数据库闭源
 *    2.maven仓库下载对应jar包
 *      mysql版本5.5    mysqljdbc
 *      oracle版本10g   ojdbc8
 *    3.变成步骤----JDBC规范--核心逻辑开发者完成
 *    3.1加载驱动,jdbc链接数据库，每个数据库都有自己驱动
 *     class.forName("com.mysql.jdbc.Driver") 反射技术 [固定结构]
 *     Mysql版本5.x   驱动:com.mysql.jdbc.Driver
 *     Mysql版本8.x   驱动;com.mysql.cj.jdbc.Driver
 *     Java-->JDBC标准规范-->Driver接口:驱动接口，各种数据库
 *     JDBC承认写对应驱动接口【所有数据库承认接口,确定什么数据库】
 *     3.2获取链接，Mysql数据库、用户名、密码、url用字符串接收
 *     String username="root";    ----- Java 写法
 *     String password="";
 *     url----> Mysql链接路径
 *     jdbc:mysql://localhost:3308//mi?characterEncoding=UTF-8
 *     协议:子协议://IP地址:端口号/库名?设置字符集
 *                  本机
 *                  127.0.0.1
 *     Java获取链接--通过DriverManager接口:工具类，可以链接各种数据库
 *     Connection con=DriverManager.getConnection(url,username,password);
 *     具体链接方案给方法:getConnection()地址、用户名、密码确定无误
 *     返回一个对象Connection对象[Java与对应数据库链接成功]
 *     打印Connection对象--打印对象--链接成功
 *    4.执行sql:JDBC只能做CRUD增删改查--Mysql创建表、库
 *    4.1 Mysql -->使用库-->创建表
 *    4.2 Java  -->CUD增改删操作
 *    4.3 Java  -->确定数据库链接成功【con】-->调取
 *              -->返回Statement对象:执行静态sql
 *     代码:Statement st=con.createStatement();
 *     4.4 Java -->Statement对象提供方法:executeUpdate();  返回int类型
 *              -->此方法执行sql:增、删、改操作--成功 几条记录
 *     代码:int rows=st.executeUpdate(sql);
 *     打桩:打印成功多少条记录
 *    5.关闭资源【倒置法:Statement、Connection--链接数据库成功对象】
 *
 *
 */
